<?php
class CategoryModel extends Model{
	public $table='category'; //操作栏目表
	//自动验证
	public $validate=array(
		array('catname','nonull','栏目不能为空',2,3),
		array('catname','checkCatName','栏目已存在',2,3),
	);
	//验证栏目是否存在   $name=字段名，$value=字段值 $msg=错误信息 $arg=参数
	public function checkCatName($name,$value,$msg,$arg){
		// M 设置表名 取catname=用户传来的栏目值
		$data = M('category')->where("catname='$value'")->find();
		// p($data);exit;
		// Q超全局函数
		if($cid=Q('cid')){ //编辑栏目
			if($data){ 
				return $data['cid']!=$cid?$msg:true;
			}else{
				return true;
			}
		}else{ //添加子栏目
			return $data?$msg:True;
		}
	}
	//获得栏目列表
	public function getList(){
		$data =$this->all(); //查询和select相似
		//获得树形栏目(父子级关系)
		return Data::tree($data,'catname','cid','pid');
	}
	//添加栏目
	public function addCategory(){
		if($this->create()){  //create() 自动验证
			if($this->add()){  //add() 添加
				return true;
			}else{
				$this->error='栏目添加失败';
			}
		}
	}
	//修改栏目
	public function editCategory(){
		if($this->create()){
			if($this->save()){ //save更新
				return true;
			}else{
				$this->error='栏目修改失败';
			}
		}
	}

	/**
	 * 删除栏目
	 * @param  [int] $cid 栏目cid
	 * @return bool 
	 */
	public function delCategory($cid){
		//获得子栏目
		$sChannel = Data::channelList($this->all(),$cid);
		// p($sChannel);exit;
		$categoryData = array_keys($sChannel);
		// 把当前栏目压入
		$categoryData[]=$cid;
		// 删除文章
		$map['cid'] = array('IN',$categoryData);
		//查询要删除栏目下所有图片
		$field =M('content')->where($map)->all();
		foreach ($field as $k => $v) {
			is_file($v['thumb']) and unlink($v['thumb']);
		}
		M('content')->where($map)->del();
		//删除栏目
		return $this->where($map)->del();
	}

}

?>

